-- CALC_SUMMON_MP

-- 计算召唤兽当前魔法值
-- @param summon    召唤兽
return function(summon)
    local mp = summon:query("mp") or 0;
    local classId = summon.class_id;
    local prop = {};

    -- TODO: 玩家对召唤兽属性加成%
    local addon = FormulaM.invoke("SUMMON_ATTRIB_ADDITION", summon, summon:queryAttrib("max_mp"), "mp");

    -- 根据楼层魔法值+
    prop = PropM.combine(summon, "attrib_by_floor", "max_mp");
    if prop[3] > 0 then
        mp = PropM.trigger(summon, prop[1], prop[2], mp);
    end

    -- 所有召唤物能力加
    prop = PropM.combine(ME.user, "summon_attrib", "mp");
    mp = PropM.apply(prop, mp);

    -- TODO: 玩家的亡灵骨铠有加成
    if SummonM.query(classId, "dbase")["equipment_add"] == 1 then
        prop = PropM.combine(ME.user, "aid_attrib2", "mp");
        mp = PropM.apply(prop, mp);
    end

    return mp + addon;
end
